package com.ler.yrmall.coupon.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ler.yrmall.coupon.dto.SeckillSkuDTO;
import com.ler.yrmall.basic.Form;
import com.ler.yrmall.coupon.entity.SeckillEntity;
import com.ler.yrmall.coupon.form.SubmitSeckillForm;
import com.ler.yrmall.coupon.vo.SeckillVO;

import java.util.List;

/**
 * @author Leron
 */
public interface SeckillService extends IService<SeckillEntity> {

    /**
     * 分页
     * @param request
     * @return
     */
    IPage<SeckillEntity> find(Form request);

    /**
     * 获取三天内的活动商品
     * @return
     */
    List<SeckillVO> getLatest3DaysSeckill();

    /**
     * 上架最近三天需要秒杀的商品
     */
    void uploadSeckillSkuLatest3Days();

    /**
     * TODO 当前仅仅支持同一时段开启一个秒杀活动 不能交叉 待优化
     * 获取当前场次信息
     * @return
     */
    List<SeckillSkuDTO> getSeckillInfo();

    /**
     * 当前sku参与的秒杀活动
     * @param skuId
     * @return
     */
    SeckillSkuDTO getSkuSeckill(Long skuId);

    /**
     * 提交秒杀信息 生成订单号
     * @param submitSeckillForm
     * @return
     */
    String submitSeckillSku(SubmitSeckillForm submitSeckillForm);
}

